#include "punto2d.h"

Punto2d::Punto2d()
{
    x = y = 0;
}

Punto2d::Punto2d(double x, double y)
{
    setCoordenadas(x, y);
}

Punto2d::~Punto2d()
{
}

QString Punto2d::toString() const
{
    return QString("%1, %2").arg(x).arg(y);
}

void Punto2d::setCoordenadas(double x, double y)
{
    this->x = x;
    this->y = y;
}

Punto2d Punto2d::getPuntoInvalido()
{
    return Punto2d(DOUBLE_NAN, DOUBLE_NAN);
}

bool Punto2d::sonIguales(const Punto2d& punto1, const Punto2d& punto2)
{
    return fequals(punto1.getX(), punto2.getX()) && fequals(punto1.getY(), punto2.getY());
}


/**
 * Calcula la distancia entre dos puntos dados.
 */
double Punto2d::distancia(const Punto2d& punto1, const Punto2d& punto2)
{
    double dx = punto2.getX() - punto1.getX();
    double dy = punto2.getY() - punto1.getY();
    return sqrt(dx * dx + dy * dy);
}